package dnl.util.ui.table;

import javax.swing.JDialog;

/**
  * 
  * 
  * @author Daniel Or
  * @version 1.0
  */
public interface ExternalRowEditor {
	
	/**
	 * Gets a dialog for editing the given <code>RowData</code>.
	 * 
	 * @return JDialog a dialog for editing the given row or <code>null</code>
	 *         if this editor 'refuses' to edit this row.
	 */
	public JDialog getEditingDialog(RowData rw);
	
	/**
	 * The reason that this editor refused to edit a row.<br>
	 * This <code>String</code> is used by the table that owns the
	 * row to display a message dialog to the user explaining why
	 * he cannot edit given lines.
	 * 
	 * @return String describing refusal reason or <code>null</code> 
	 * 				 if this editor wishes nothing to be displayed.
	 */
	public String getRefusalReason();
	
}
